<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // Promise.prototype.catch(callback)描述promise对象状态为rejected时的回调执行函数
        // .catch的使用等同于.then(null,callback) 或者.then(undefined,callback)
        function returnPromise(){
            return new Promise(function(resolve,reject){
                // resolve();
                reject();
            });
        }
        var p=returnPromise();
        // p.then(function(){
        //     console.log("执行了resolve");
        // },function(){
        //     console.log("执行了reject");
        // });
        // p.then(null,function(){
        //     console.log("执行了reject");
        // });
        
        // p.catch(function(){
        //     console.log("执行了reject");
        // });

        // Promise 对象的错误具有“冒泡”性质，会一直向后传递，直到被捕获为止。
        // Promise 内部的错误不会影响到 Promise 外部的代码，通俗的说法就是“Promise 会吃掉错误”。

        p.then(function(){
            console.log(1);
        }).catch(function(error){
            console.log("1-error",error);
        }).then(function(){
            // var str="aaa";
            var str=message;
            console.log(str);
        }).catch(function(error){
            console.log("2-error",error);
        });
        console.log("哈哈哈哈哈");
    </script>
</head>
<body>
    
</body>
</html>